SQLで、= NULLではなく、IS NULLと書く理由
値ではない特殊なNULL用に、特殊な構文ISが必要になった
例
以下のテーブルについて考える
code:sql
CREATE TABLE hoge (
id INT,
isX BOOLEAN -- NULLを許容するBOOLEAN
);
INSERT INTO hoge (id, isX) VALUES
(1, true), (2, true), (3, false), (4, NULL);
以下の2つは、式自体がNULLになるので、何の結果も返ってこない
SELECT x FROM hoge WHERE isX = NULL
SELECT x FROM hoge WHERE isX <> NULL
NULLだけ取り出すなら、IS NULLという構文を使う必要がある
SELECT x FROM hoge WHERE isX IS NULL
参考